/* 因为在a.cpp中已经声明了全局变量a，所以在b.cpp中就不能再次声明同名称的全局变量了
int a = 18;

//编译器报错：
$ make
g++ -c b.cpp -o b.o
g++ -c main.cpp -o main.o
g++ -o test a.o b.o main.o
b.o:b.cpp:(.data+0x0): multiple definition of `_a'  //重复的声明了a变量：看名称=_a
a.o:a.cpp:(.data+0x0): first defined here           //第一次声明在这里
collect2: ld returned 1 exit status
make: *** [test] Error 1
*/

/**
 * 分析为什么在多个c文件中不能声明相同名称的变量？
 * 看名称_a，编译器在给我们的a命名的时候在前面加了下划线_，而且全局变量在整个程序中是存储在全局区域的，这样如果在多个c文件中声明了相同名称的变量
 * 那么，在全局内存区域就会有多个同名称的变量，显然不可以！
 * */
